perm filename JOLLY.MAC[C,JRA]1 blob
sn#012877 filedate 1972-11-16 generic text, type T, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
RECORD PAGE DESCRIPTION
00001 00001
00002 00002 TITLE A NOT SO WONEREOUS KLUGE
00006 ENDMK
⊗;
TITLE A NOT SO WONEREOUS KLUGE
A=1
B=2
P=14
INTERN MACIT,UNMACIT,CONIVE,UNCNVIT
EXTERN EVAL,CHRTAB,READ,XCONS,NCONS,OLDCH,RATOM,TYI
EXTERN CNVAT,CNVCOL,CNVCOM,CNVQUO
EXTERN CNVEL,CNVEG,CNVEQS,CNVEQU,CNVEA,CNVEC,CNVES,CNVDQ
IAP3=5240
APBK2=5171
READ1=READ+5
MACIT: MOVE A,[XWD 652704,0]
MOVEM A,CHRTAB+42
MOVEM A,CHRTAB+100
MOVE A,[XWD 422705,200000]
MOVEM A,CHRTAB+47
MOVEI B,PREVAL
MAC1: MOVE A,[PUSHJ P,READ1]
MAC2: MOVEM A,RATOM-6
HRRM B,APBK2+2
HRRM B,APBK2+6
HRRM B,IAP3+10
SETZM ,A
POPJ P,0
UNCNVIT:
UNMACIT: MOVE A,[XWD 112444,0]
MOVEM A,CHRTAB+42
MOVE A,[XWD 652704,0]
MOVEM A,CHRTAB+72
MOVEM A,CHRTAB+41
MOVEM A,CHRTAB+47
MOVE A,[XWD 422705,200000]
MOVEM A,CHRTAB+100
MOVE A,[XWD 32644,0]
MOVEM A,CHRTAB+54
MOVEI B,EVAL
JRST MAC1
PR1: HLRZ A,(B)
PREVAL: PUSH P,B
PUSHJ P,EVAL
POP P,B
HRRZ B,(B)
JUMPN B,PR1
POPJ P,0
CONIVE: MOVE A, [XWD 422705,200000]
MOVEM A,CHRTAB+100
MOVEM A,CHRTAB+72
MOVEM A,CHRTAB+47
MOVEM A,CHRTAB+41
MOVEM A,CHRTAB+54
MOVE A,[JRST PREFIX]
MOVEI B,PREVAL
JRST MAC2
PREFIX:CAIN A,":"
JRST COL
CAIN A,"'"
JRST QUOTE
CAIN A,"@"
JRST AT
CAIN A,","
JRST COM
PUSHJ P,TYI
CAIN A,42 ;"
JRST DQ
CAIN A,"<"
MOVEI B,CNVEL
CAIN A,">"
MOVEI B,CNVEG
CAIN A,"?"
MOVEI B,CNVEQS
CAIN A,"'"
MOVEI B,CNVEQU
CAIN A,"@"
MOVEI B,CNVEA
CAIN A,","
MOVEI B,CNVEC
CAIN A,";"
MOVEI B,CNVES
PUSH P,B
PUSHJ P,TYI
MOVEM A,OLDCH
CAIN A,"("
JRST AT+1
CAIE A,")"
CAIN A," "
JRST NILIT
CAIE A,11
JRST QUOT+2
NILIT:
SETZM,A
JRST QUO1-1
COM: MOVEI B,CNVCOM
JRST QUOT+1
DQ: PUSHJ P,READ1
MOVEI B,CNVDQ
JRST XCONS
AT: MOVEI B,CNVAT
PUSHJ P,READ1
JRST QUO1
COL: MOVEI B,CNVCOL
JRST QUOT+1
QUOT: MOVEI B,CNVQUO
PUSH P,B
PUSHJ P,READ1
PUSHJ P,NCONS
QUO1: POP P,B
JRST XCONS
QUOTE: PUSHJ P,READ1
JRST RATOM-5
END